/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Br.Com.Cds.Academia.Funcionario;

import Br.Com.Cds.Academia.Aluno.AlunoBean;
import Br.Com.Cds.Academia.DAO.AcessoMySQL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Pedro
 */
public class FuncionarioControl {
    
    PreparedStatement pstm;
    ResultSet rs;
    
    
    String consultafuncionario = "SELECT * FROM FUNCIONARIO WHERE NOME LIKE ?";
    String cadastrafuncionario = "INSERT INTO FUNCIONARIO (NOME,RG,ORGAOEMISSOR,ESTADOEMISSOR,CPF,CEP,ENDERECO,CIDADE,BAIRRO, NUMERO,COMPLEMENTO,UF, TELEFONE,CELULAR,DATANASCIMENTO,IDADE,MODALIDADE,NIVELESCOLAR,EMAIL,STATUS,NOMEPAI,NOMEMAE,SALARIO,CTPS,DATAADMISSAO,DATADEMISSAO,BIOMETRIA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    String alterarafuncionario = "UPDATE FUNCIONARIO SET NOME=?,RG=?,ORGAOEMISSOR=?,ESTADOEMISSOR=?,CPF=?,CEP=?,ENDERECO=?,CIDADE=?,BAIRRO=?, NUMERO=?,COMPLEMENTO=?,UF=?, TELEFONE=?,CELULAR=?,DATANASCIMENTO=?,IDADE=?,MODALIDADE=?,NIVELESCOLAR=?,EMAIL=?,STATUS=?,NOMEPAI=?,NOMEMAE=?,SALARIO=?,CTPS=?,DATAADMISSAO=?,DATADEMISSAO=?,BIOMETRIA=? WHERE IDFUNCIONARIO=?";
    String excluirfuncionario = "DELETE FROM FUNCIONARIO WHERE IDFUNCIONARIO=?";
    
    
    
     public void cadastraFuncionario (FuncionarioBean funcionario){
        try {
            AcessoMySQL mysql = new AcessoMySQL();
            pstm = (PreparedStatement) mysql.conectar().prepareStatement(cadastrafuncionario);
            pstm.setString(1,funcionario.getNome());
            pstm.setString(2, funcionario.getRg());
            pstm.setString(3, funcionario.getOrgaoemissor());
            pstm.setString(4, funcionario.getEstadoemissor());
            pstm.setString(5, funcionario.getCpf());
            pstm.setString(6, funcionario.getCep());
            pstm.setString(7, funcionario.getEndereco());
            pstm.setString(8, funcionario.getCidade());
            pstm.setString(9, funcionario.getBairro());
            pstm.setString(10, funcionario.getNumero());
            pstm.setString(11, funcionario.getComplemento());
            pstm.setString(12, funcionario.getUf());
            pstm.setString(13, funcionario.getTelefone());
            pstm.setString(14, funcionario.getCelular());
            pstm.setDate(15, funcionario.getDatanascimento());
            pstm.setString(16, funcionario.getModalidade());
            pstm.setString(17, funcionario.getNivelescolar());
            pstm.setString(18, funcionario.getEmail());
            pstm.setString(19, funcionario.getStatus());
            pstm.setString(20, funcionario.getNomepai());
            pstm.setString(21, funcionario.getNomemae());
            pstm.setDouble(22, funcionario.getSalario());
            pstm.setDate(24, funcionario.getDataadmissao());
            pstm.setString(25, funcionario.getDatademissao());
            pstm.setString(26, funcionario.getBiometria());
            pstm.setString(27, funcionario.getCtps());
            pstm.setInt(28, funcionario.getIdfuncionario());
            pstm.executeUpdate();
            mysql.desconectar();
    
        } catch (SQLException e) {
            e.printStackTrace ();
            JOptionPane.showMessageDialog(null, "SQL EXCEPTION ! ERRO AO TENTAR CADASTRAR UM FUNCIONARIO!","CDS ACADEMIA",JOptionPane.ERROR_MESSAGE); 
        }
}


public void alterarFuncionario (FuncionarioBean funcionario){
    
    try {
        AcessoMySQL mysql = new AcessoMySQL();
            pstm = (PreparedStatement) mysql.conectar().prepareStatement(alterarafuncionario);
            pstm.setString(1,funcionario.getNome());
            pstm.setString(2, funcionario.getRg());
            pstm.setString(3, funcionario.getOrgaoemissor());
            pstm.setString(4, funcionario.getEstadoemissor());
            pstm.setString(5, funcionario.getCpf());
            pstm.setString(6, funcionario.getCep());
            pstm.setString(7, funcionario.getEndereco());
            pstm.setString(8, funcionario.getCidade());
            pstm.setString(9, funcionario.getBairro());
            pstm.setString(10, funcionario.getNumero());
            pstm.setString(11, funcionario.getComplemento());
            pstm.setString(12, funcionario.getUf());
            pstm.setString(13, funcionario.getTelefone());
            pstm.setString(14, funcionario.getCelular());
            pstm.setDate(15, funcionario.getDatanascimento());
            pstm.setString(16, funcionario.getModalidade());
            pstm.setString(17, funcionario.getNivelescolar());
            pstm.setString(18, funcionario.getEmail());
            pstm.setString(19, funcionario.getStatus());
            pstm.setString(20, funcionario.getNomepai());
            pstm.setString(21, funcionario.getNomemae());
            pstm.setDouble(22, funcionario.getSalario());
            pstm.setDate(24, funcionario.getDataadmissao());
            pstm.setString(25, funcionario.getDatademissao());
            pstm.setString(26, funcionario.getBiometria());
            pstm.setString(27, funcionario.getCtps());
            pstm.setInt(28, funcionario.getIdfuncionario());
            pstm.executeUpdate();
            mysql.desconectar(); 
    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(null,"SQL EXCEPTION ! ERRO AO TENTAR ALTERAR UM FUNCIONARIO!","CDS ACADEMIA",JOptionPane.ERROR_MESSAGE);
    }
}

    
  public List <FuncionarioBean> listarFuncionario (String nomefuncionario){
         List <FuncionarioBean> funcionarios = new ArrayList ();
         
         try {
             AcessoMySQL mysql = new AcessoMySQL();
             pstm = (PreparedStatement) mysql.conectar().prepareStatement(consultafuncionario);
             pstm.setString(1, nomefuncionario);
             rs = pstm.executeQuery();
             FuncionarioBean alu;
             
             while (rs.next()){
                alu = new FuncionarioBean ();
                alu.setIdfuncionario(rs.getInt("IDALUNO"));          
                alu.setNome(rs.getString("NOME"));  
                alu.setRg(rs.getString("RG")); 
                alu.setOrgaoemissor(rs.getString("ORGAOEMISSOR")); 
                alu.setEstadoemissor(rs.getString("ESTADOEMISSOR"));  
                alu.setCpf(rs.getString("CPF"));   
                alu.setCep(rs.getString("CEP"));   
                alu.setEndereco(rs.getString("ENDERECO"));   
                alu.setCidade(rs.getString("CIDADE"));   
                alu.setBairro(rs.getString("BAIRRO"));   
                alu.setNumero(rs.getString("NUMERO"));   
                alu.setComplemento(rs.getString("COMPLEMENTO"));   
                alu.setUf(rs.getString("UF"));   
                alu.setTelefone(rs.getString("TELEFONE"));   
                alu.setCelular(rs.getString("CELULAR"));   
                alu.setDatanascimento (rs.getDate("DATANASCIMENTO"));   
                alu.setIdade(rs.getString("IDADE"));   
                alu.setModalidade(rs.getString("MODALIDADE"));   
                alu.setNivelescolar(rs.getString("NIVELESCOLAR"));   
                alu.setEmail(rs.getString("EMAIL"));   
                alu.setStatus(rs.getString("STATUS"));   
                alu.setNomepai(rs.getString("NOMEPAI"));   
                alu.setNomemae(rs.getString("NOMEMAE"));   
                alu.setSalario(rs.getDouble("SALARIO")); 
                alu.setCtps(rs.getString("CTPS")); 
                alu.setDataadmissao(rs.getDate("DATAADMISSAO")); 
                alu.setDatademissao(rs.getString("DATADEMISSAO")); 
                alu.setBiometria(rs.getString("BIOMETRIA")); 
                funcionarios.add(alu);  
             }    
      } catch (Exception e) {
        e.printStackTrace();
         JOptionPane.showMessageDialog(null,"SQL EXCEPTION - ERRO AO TENTAR REALIZAR UM FUNCIONARIO","CDS ACADEMIA",JOptionPane.ERROR_MESSAGE);
        
      }
        return funcionarios;
      
  }
    
    
  public void excluirFuncionario (int idfuncionario){
      
      try {
          AcessoMySQL mysql = new AcessoMySQL();
          pstm = (PreparedStatement) mysql.conectar().prepareStatement(excluirfuncionario);
          pstm.setInt(1,idfuncionario);
          pstm.executeUpdate();
          mysql.desconectar();
            
      } catch (Exception e) {
          e.printStackTrace();
          JOptionPane.showMessageDialog(null,"SQL EXCEPTION - ERRO AO TENTAR EXCLUIR UM FUNCIONARIO","CDS ACADEMIA",JOptionPane.ERROR_MESSAGE);
      }
      
      
      
      
  }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
